package Controller.CidadeController;

import javax.swing.JOptionPane;

import DAO.CidadeDAO;
import Entidade.Cidade;
import Model.CidadeModel.CidadeConsultaModel;
import View.CidadeView.CidadeView;
import framework.mvc.GenericController;

public class CidadeConsultaController extends GenericController<Cidade> {
	public CidadeConsultaController() {
		super(new CidadeConsultaModel(), new CidadeDAO());
	}

	public void novo() {
		CidadeView cidadeview = new CidadeView();
		cidadeview.abrir();
		view.atualizarView();
	}

	public void alterar() {
		view.atualizarModel();
		Cidade cidadeSelecionado = ((CidadeConsultaModel) model)
				.getCidadeSelecionado();
		if (cidadeSelecionado == null) {
			JOptionPane.showMessageDialog(null,
					"Selecione a Cidade que deseja alterar", "Erro",
					JOptionPane.ERROR_MESSAGE);

		} else {
			CidadeView cidadeView = new CidadeView();
			cidadeView.getModel().setEntidade(cidadeSelecionado);
			cidadeView.atualizarView();
			cidadeView.abrir();
			view.atualizarView();
		}
	}

	public void excluir() {
		view.atualizarModel();
		Cidade cidadeSelecionado = ((CidadeConsultaModel) model)
				.getCidadeSelecionado();
		if (cidadeSelecionado == null) {
			JOptionPane.showMessageDialog(null,
					"Selecione o contato que deseja excluir", "Erro",
					JOptionPane.ERROR_MESSAGE);
		} else {
			if (JOptionPane.showConfirmDialog(null,
					"Deseja realmente excluir esta Cidade?") == JOptionPane.YES_OPTION) {
				getDao().excluir(cidadeSelecionado);
				view.atualizarView();
			}
		}
	}

	public void fechar() {
		view.dispose();
	}

	public void selecionar() {
		view.atualizarModel();
		Cidade cidadeSelecionado = ((CidadeConsultaModel) model)
				.getCidadeSelecionado();
		if (cidadeSelecionado == null) {
			JOptionPane.showMessageDialog(null,
					"Selecione a Cidade que deseja alterar", "Erro",
					JOptionPane.ERROR_MESSAGE);
		} else {
			CidadeView cidadeView = new CidadeView();
			cidadeView.getModel().setEntidade(cidadeSelecionado);
			cidadeView.atualizarView();
			cidadeView.abrir();
			view.atualizarView();
		}
	}
}
